k8s 安装 EFK | 您所在的位置:网站首页 › k8s efk › k8s 安装 EFK |
k8s 安装 EFK
官方: https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch 转载: http://www.amd5.cn/atang_4240.html 1、下载官方yaml配置文件到master服务器 https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch 主要是以下几个文件: es-service.yaml es-statefulset.yaml fluentd-es-configmap.yaml fluentd-es-ds.yaml kibana-deployment.yaml kibana-service.yaml kubernetes 部署ELK日志 #git clone https://github.com/kubernetes/kubernetes.git #把整个项目克隆到本地 2、注释kibana-deployment.yaml文件下面两行,否则会因为无效的证书颁发机构无法访问 tls: unknown certificate authority 截图 (2).png #- name: SERVER_BASEPATH # value: /api/v1/namespaces/kube-system/services/kibana-logging/proxy3、封装fluentd-elasticsearch镜像。 #cd kubernetes/cluster/addons/fluentd-elasticsearch/fluentd-es-image #docker build -t k8s.gcr.io/fluentd-elasticsearch:v2.2.0 -f Dockerfile . #把镜像导出并发送到node节点,如果有私有仓库,先上传到私有仓库,再修改fluentd-es-ds.yaml文件里面的image为自己私有仓库镜像。 #docker save k8s.gcr.io/fluentd-elasticsearch:v2.2.0 | bzip2 | pv | ssh root@node1 ‘cat | docker load’ #docker save k8s.gcr.io/fluentd-elasticsearch:v2.2.0 | bzip2 | pv | ssh root@node2 ‘cat | docker load’ 拉取docker官方对google的容器做的镜像启动会报错如下:这是因为没有安装插件。 [error]: config error file="/etc/fluent/fluent.conf" error_class=Fluent::ConfigError error=“Unknown filter plugin ‘concat’. Run ‘gem search -rd fluent-plugin’ to find plugins” 4、部署yaml #节点设置标签beta.kubernetes.io/fluentd-ds-ready=true,否则fluentd-es无法部署。 #kubectl label node node1 beta.kubernetes.io/fluentd-ds-ready=true #kubectl label node node2 beta.kubernetes.io/fluentd-ds-ready=true #cd … #kubectl apply -f ./ #kubectl get pod,svc -n kube-system kubernetes 部署ELK日志 5、配置ingress规则访问kibana-logging #cat ingress.yml apiVersion: extensions/v1beta1 kind: Ingress metadata: name: elk-ingress namespace: kube-system spec: rules: host: elk.test.com http: paths: path: / backend: serviceName: kibana-logging servicePort: 5601#配置ingress控制器(traefik、Nginx-ingress等)以后就可以配置host访问elk.test.com kubernetes 部署ELK日志 6、日志持久化之NFS动态PV #kubectl delete -f es-statefulset.yaml 按照 Kubernetes使用StorageClass动态生成NFS类型的PV 部署好NFS动态PV a.更改NFS共享权限 #cat /etc/exports /var/data 192.168.15.0/24(rw,sync,insecure,no_subtree_check,no_root_squash) 注意:权限不正确,会导致elasticsearch-logging-无法启动,会报错: chown -R elasticsearch:elasticsearch /datachown: changing ownership of ‘/data’: Operation not permitted b.修改es-statefulset.yaml文件,把默认的emptyDir改成NFS动态pv 注释默认的volumes 截图 (5).png 在文件后面添加如下内容,注意格式: volumeClaimTemplates: metadata: name: elasticsearch-logging spec: accessModes: - ReadWriteMany resources: requests: storage: 1Gi storageClassName: nfs-elkc.启动测试 #kubectl apply -f es-statefulset.yaml kubernetes 部署ELK日志 kubernetes 部署ELK日志 过一段时间后,NFS共享目录下面已经存储了日志内容。 [root@Master data]# du -sh kube-system-elasticsearch-logging-elasticsearch-logging-* 277M kube-system-elasticsearch-logging-elasticsearch-logging-0-pvc-05c74e78-fc65-11e8-b19e-000c29731f53 271M kube-system-elasticsearch-logging-elasticsearch-logging-1-pvc-7cbce610-fce5-11e8-981d-000c29731f53 |
CopyRight 2018-2019 实验室设备网 版权所有 |